package com.self.springframework.beans.factory.support;


import com.self.springframework.beans.factory.config.BeanDefinition;

/**
 *用于注册和管理 BeanDefinition。负责存储和管理Bean的定义信息。通常与BeanFactory结合使用，用于动态注册和修改 Bean 的定义
 * 注册 Bean 定义：将 BeanDefinition 注册到容器中。
 * 移除 Bean 定义：从容器中移除指定的 BeanDefinition。
 * 判断 Bean 定义是否存在：检查容器中是否包含指定的 BeanDefinition。
 * 获取 Bean 定义：根据 Bean 的名称获取对应的 BeanDefinition。
 */
public interface BeanDefinitionRegistry {

    /**
     * 向注册表中注册BeanDefinition
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);
    /**
     * 使用bean名称查询BeanDefinition
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 判断是否包含指定名称的BeanDefinition
     */
    boolean containBeanDefinition(String beanName);

    /**
     * 返回注册表中所有的bean名称
     */
    String[] getBeanDefinitionNames();
}
